package com.qmscy.sparrow.service;

import com.qmscy.sparrow.common.exception.PasswordMismatchException;
import com.qmscy.sparrow.domain.User;

import java.util.NoSuchElementException;
import org.springframework.security.core.userdetails.UserDetailsService;

/**
 * 用户基础信息服务
 *
 * @Author: wangxiaonan
 * @Date: 2019/1/6
 **/
public interface UserService extends BaseService<User>, UserDetailsService {

    /**
     * 用户登录验证，方法将密码加密处理后与现有数据对比
     *
     * @param username 用户名，同时支持用户名，邮箱和手机号验证
     * @param password 密码，参数不用加密处理
     * @return user 成功返回当前用户信息
     * @throws PasswordMismatchException 密码不匹配
     * @throws NoSuchElementException    用户不存在
     */
    User loginInfoValidate(String username, String password) throws PasswordMismatchException, NoSuchElementException;
}
